1. Field of the Invention
The present invention relates to communications; more particularly to data communications.
2. Description of the Related Art
Data communications protocol entities are commonly used to provide reliable, in-order delivery of Service Data Units (SDUs) to entities that utilize the protocol entity's services (see FIG. 1). Such end-to-end reliable delivery services are typically implemented within ISO/OSI layer 2 (Link Layer) or layer 4 (Transport Layer). These reliable transmission protocols typically use sliding window protocols or similar approaches. At the heart of sliding window protocols is the concept of the transmission of Protocol Data Units (PDUs) containing sequence numbers that are used to identify PDUs that are delivered with errors, not delivered, or delivered out of order by the transmission media protocol layers below the reliable transmission protocol entities. These sequence numbers are used to determine when to send control messages between the peer reliable transmission entities to indicate either or both of the following conditions:
(1) Positive Acknowledgment (ACK) of properly received packets with a particular sequence number or range of sequence numbers. PA1 (2) Negative Acknowledgment (NAK) of improperly received packets with a particular sequence number or range of sequence numbers.
Based on timeouts or other predetermined protocol rules, the reliable transmission service entities retransmit missing or damaged PDUs. Protocols that utilize this technique are generally known as ARQ protocols. Common examples of ARQ protocols for wireline environments are ITU link layer protocols (LAPB, etc.), SDLC, HDLC, Bisync, and Connection Oriented Transport Protocols such as ISO/OSI COTP and the Transmission Control Protocol (TCP). In a wireless environment, reliable end to end transmission is commonly provided by a Radio Link Protocol (RLP) that is highly optimized for the particular wireless transmission media that are in use. Examples of RLP protocols can be found in TIA/EIA IS-707 (for CDMA) and IS-135 (for TDMA).
A common technique that is utilized by ARQ protocols is to divide the SDUs from higher layer service entities into fixed length PDUs (for example, with a length of 256 or 512 Octets in each PDU). PDU size is generally chosen to provide for optimal transmission throughput depending on the transmission rate of the underlying communications layers. Each successive PDU that is transmitted is assigned the next available sequence number from a modular arithmetic sequence number space (for example, sequence numbers drawn from an 8 bit, modulo 256 sequence number space). Sliding window protocols or other techniques are used to guarantee that two or more different PDUs (i.e., coming from a different position within the SDU stream) with the same sequence number can never be in transit between the reliable transmission entities at the same time. Note that there is a tradeoff between the PDU size and the size of the sequence number space depending on the reliability and transmission delay of the underlying communications media.
In communications environments that support relatively stable data transmission rates (i.e., data transmission rates may vary somewhat over time, but not over several orders of magnitude), the use of fixed length PDUs and sequence numbers that map one to one with that PDU sequence are quite adequate. For example, LAPM protocols are often used in wireline modem environments with adaptive transmission rates. However, in some environments (such as in high speed wireless data transmission), the transmission rates can vary over several orders of magnitude within a very short period of time (seconds or less). This is compounded by the fact that data transmission error rates and transmission delays for such environments tend to be high. If PDU sizes are fixed at small values that are appropriate for low transmission rate conditions, then the sequence number space for pending PDUs can be quite large, and the protocol header overhead is also quite large. If PDU sizes are fixed at large values that are appropriate for high transmission rate conditions, then the sequence number space for pending PDUs can be small (along with the protocol header overhead). However, very large PDUs can not be conveniently retransmitted with high reliability during low transmission rate conditions.